ida_name ======== .. py:module:: ida_name .. autoapi-nested-parse:: Functions that deal with names. 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. Attributes ---------- .. autoapisummary:: ida_name.SWIG_PYTHON_LEGACY_BOOL ida_name.MAXNAMELEN ida_name.FUNC_IMPORT_PREFIX ida_name.SN_CHECK ida_name.SN_NOCHECK ida_name.SN_PUBLIC ida_name.SN_NON_PUBLIC ida_name.SN_WEAK ida_name.SN_NON_WEAK ida_name.SN_AUTO ida_name.SN_NON_AUTO ida_name.SN_NOLIST ida_name.SN_NOWARN ida_name.SN_LOCAL ida_name.SN_IDBENC ida_name.SN_FORCE ida_name.SN_NODUMMY ida_name.SN_DELTAIL ida_name.SN_MULTI ida_name.SN_MULTI_FORCE ida_name.UCDR_STRLIT ida_name.UCDR_NAME ida_name.UCDR_MANGLED ida_name.UCDR_TYPE ida_name.VNT_IDENT ida_name.VNT_TYPE ida_name.VNT_UDTMEM ida_name.VNT_STRLIT ida_name.VNT_VISIBLE ida_name.NT_NONE ida_name.NT_BYTE ida_name.NT_LOCAL ida_name.NT_STKVAR ida_name.NT_ENUM ida_name.NT_ABS ida_name.NT_SEG ida_name.NT_STROFF ida_name.NT_BMASK ida_name.NT_REGVAR ida_name.GN_VISIBLE ida_name.GN_COLORED ida_name.GN_DEMANGLED ida_name.GN_STRICT ida_name.GN_SHORT ida_name.GN_LONG ida_name.GN_LOCAL ida_name.GN_ISRET ida_name.GN_NOT_ISRET ida_name.GN_NOT_DUMMY ida_name.GETN_APPZERO ida_name.GETN_NOFIXUP ida_name.GETN_NODUMMY ida_name.GNCN_NOSEG ida_name.GNCN_NOCOLOR ida_name.GNCN_NOLABEL ida_name.GNCN_NOFUNC ida_name.GNCN_SEG_FUNC ida_name.GNCN_SEGNUM ida_name.GNCN_REQFUNC ida_name.GNCN_REQNAME ida_name.GNCN_NODBGNM ida_name.GNCN_PREFDBG ida_name.DEBNAME_EXACT ida_name.DEBNAME_LOWER ida_name.DEBNAME_UPPER ida_name.DEBNAME_NICE ida_name.DQT_NPURGED_8 ida_name.DQT_NPURGED_4 ida_name.DQT_NPURGED_2 ida_name.DQT_COMPILER ida_name.DQT_NAME_TYPE ida_name.DQT_FULL ida_name.CN_KEEP_TRAILING_DIGITS ida_name.CN_KEEP_UNDERSCORES ida_name.ME_INTERR ida_name.ME_PARAMERR ida_name.ME_ILLSTR ida_name.ME_SMALLANS ida_name.ME_FRAME ida_name.ME_NOCOMP ida_name.ME_ERRAUTO ida_name.ME_NOHASHMEM ida_name.ME_NOSTRMEM ida_name.ME_NOERROR_LIMIT ida_name.M_PRCMSK ida_name.MT_DEFAULT ida_name.MT_CDECL ida_name.MT_PASCAL ida_name.MT_STDCALL ida_name.MT_FASTCALL ida_name.MT_THISCALL ida_name.MT_FORTRAN ida_name.MT_SYSCALL ida_name.MT_INTERRUPT ida_name.MT_MSFASTCALL ida_name.MT_CLRCALL ida_name.MT_DMDCALL ida_name.MT_VECTORCALL ida_name.MT_REGCALL ida_name.MT_LOCALNAME ida_name.M_SAVEREGS ida_name.M_CLASS ida_name.MT_PUBLIC ida_name.MT_PRIVATE ida_name.MT_PROTECT ida_name.MT_MEMBER ida_name.MT_VTABLE ida_name.MT_RTTI ida_name.M_PARMSK ida_name.MT_PARSHF ida_name.MT_PARMAX ida_name.M_ELLIPSIS ida_name.MT_VOIDARG ida_name.M_STATIC ida_name.M_VIRTUAL ida_name.M_AUTOCRT ida_name.M_TYPMASK ida_name.MT_OPERAT ida_name.MT_CONSTR ida_name.MT_DESTR ida_name.MT_CASTING ida_name.MT_CLRCDTOR ida_name.M_TRUNCATE ida_name.M_THUNK ida_name.M_ANONNSP ida_name.M_TMPLNAM ida_name.M_DBGNAME ida_name.M_COMPILER ida_name.MT_MSCOMP ida_name.MT_BORLAN ida_name.MT_WATCOM ida_name.MT_OTHER ida_name.MT_GNU ida_name.MT_GCC3 ida_name.MT_VISAGE ida_name.MNG_PTRMSK ida_name.MNG_DEFNEAR ida_name.MNG_DEFNEARANY ida_name.MNG_DEFFAR ida_name.MNG_NOPTRTYP16 ida_name.MNG_DEFHUGE ida_name.MNG_DEFPTR64 ida_name.MNG_DEFNONE ida_name.MNG_NOPTRTYP ida_name.MNG_NODEFINIT ida_name.MNG_NOUNDERSCORE ida_name.MNG_NOTYPE ida_name.MNG_NORETTYPE ida_name.MNG_NOBASEDT ida_name.MNG_NOCALLC ida_name.MNG_NOPOSTFC ida_name.MNG_NOSCTYP ida_name.MNG_NOTHROW ida_name.MNG_NOSTVIR ida_name.MNG_NOECSU ida_name.MNG_NOCSVOL ida_name.MNG_NOCLOSUR ida_name.MNG_NOUNALG ida_name.MNG_NOMANAGE ida_name.MNG_NOMODULE ida_name.MNG_SHORT_S ida_name.MNG_SHORT_U ida_name.MNG_ZPT_SPACE ida_name.MNG_DROP_IMP ida_name.MNG_IGN_ANYWAY ida_name.MNG_IGN_JMP ida_name.MNG_MOVE_JMP ida_name.MNG_COMPILER_MSK ida_name.MNG_SHORT_FORM ida_name.MNG_LONG_FORM ida_name.MNG_CALC_VALID ida_name.cvar ida_name.ignore_none ida_name.ignore_regvar ida_name.ignore_llabel ida_name.ignore_stkvar ida_name.ignore_glabel ida_name.MANGLED_CODE ida_name.MANGLED_DATA ida_name.MANGLED_UNKNOWN Classes ------- .. autoapisummary:: ida_name.ea_name_vec_t ida_name.ea_name_t ida_name.NearestName Functions --------- .. autoapisummary:: ida_name.get_name ida_name.get_colored_name ida_name.set_name ida_name.force_name ida_name.del_global_name ida_name.del_local_name ida_name.set_dummy_name ida_name.make_name_auto ida_name.make_name_user ida_name.is_valid_cp ida_name.set_cp_validity ida_name.get_cp_validity ida_name.is_ident_cp ida_name.is_strlit_cp ida_name.is_visible_cp ida_name.is_ident ida_name.is_uname ida_name.is_valid_typename ida_name.extract_name ida_name.hide_name ida_name.show_name ida_name.get_name_ea ida_name.get_name_base_ea ida_name.get_name_value ida_name.get_visible_name ida_name.get_short_name ida_name.get_long_name ida_name.get_colored_short_name ida_name.get_colored_long_name ida_name.get_demangled_name ida_name.get_colored_demangled_name ida_name.get_name_color ida_name.get_name_expr ida_name.get_nice_colored_name ida_name.append_struct_fields ida_name.is_public_name ida_name.make_name_public ida_name.make_name_non_public ida_name.is_weak_name ida_name.make_name_weak ida_name.make_name_non_weak ida_name.get_nlist_size ida_name.get_nlist_idx ida_name.is_in_nlist ida_name.get_nlist_ea ida_name.get_nlist_name ida_name.rebuild_nlist ida_name.reorder_dummy_names ida_name.set_debug_name ida_name.get_debug_name ida_name.del_debug_names ida_name.get_debug_name_ea ida_name.demangle_name ida_name.is_name_defined_locally ida_name.cleanup_name ida_name.get_mangled_name_type ida_name.get_debug_names ida_name.get_ea_name ida_name.validate_name ida_name.calc_gtn_flags Module Contents --------------- .. py:data:: SWIG_PYTHON_LEGACY_BOOL .. py:class:: ea_name_vec_t(*args) Bases: :py:obj:`object` .. py:attribute:: thisown .. py:method:: push_back(*args) -> ea_name_t & .. py:method:: pop_back() -> None .. py:method:: size() -> size_t .. py:method:: empty() -> bool .. py:method:: at(_idx: size_t) -> ea_name_t const & .. py:method:: qclear() -> None .. py:method:: clear() -> None .. py:method:: resize(*args) -> None .. py:method:: grow(*args) -> None .. py:method:: capacity() -> size_t .. py:method:: reserve(cnt: size_t) -> None .. py:method:: truncate() -> None .. py:method:: swap(r: ea_name_vec_t) -> None .. py:method:: extract() -> ea_name_t * .. py:method:: inject(s: ea_name_t, len: size_t) -> None .. py:method:: begin(*args) -> qvector< ea_name_t >::const_iterator .. py:method:: end(*args) -> qvector< ea_name_t >::const_iterator .. py:method:: insert(it: ea_name_t, x: ea_name_t) -> qvector< ea_name_t >::iterator .. py:method:: erase(*args) -> qvector< ea_name_t >::iterator .. py:method:: append(x: ea_name_t) -> None .. py:method:: extend(x: ea_name_vec_t) -> None .. py:attribute:: front .. py:attribute:: back .. py:function:: get_name(ea: ida_idaapi.ea_t) -> str .. py:function:: get_colored_name(ea: ida_idaapi.ea_t) -> str .. py:data:: MAXNAMELEN Maximum length of a name in IDA (with the trailing zero) .. py:data:: FUNC_IMPORT_PREFIX Name prefix used by IDA for the imported functions. .. py:function:: set_name(ea: ida_idaapi.ea_t, name: str, flags: int = 0) -> 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. :param ea: linear address. do nothing if ea is not valid (return 0). tail bytes can't have names. :param name: new name. * nullptr: do nothing (return 0). * "" : delete name. * otherwise this is a new name. :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. :returns: 1: ok, name is changed :returns: 0: failure, a warning is displayed .. py:data:: SN_CHECK Fail if the name contains invalid characters. .. py:data:: SN_NOCHECK Replace invalid characters silently. If this bit is set, all invalid chars (not in NameChars or MangleChars) will be replaced by '_' List of valid characters is defined in ida.cfg .. py:data:: SN_PUBLIC if set, make name public .. py:data:: SN_NON_PUBLIC if set, make name non-public .. py:data:: SN_WEAK if set, make name weak .. py:data:: SN_NON_WEAK if set, make name non-weak .. py:data:: SN_AUTO if set, make name autogenerated .. py:data:: SN_NON_AUTO if set, make name non-autogenerated .. py:data:: 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). .. py:data:: SN_NOWARN don't display a warning if failed .. py:data:: 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. .. py:data:: SN_IDBENC the name is given in the IDB encoding; non-ASCII bytes will be decoded accordingly. Specifying SN_IDBENC also implies SN_NODUMMY .. py:data:: SN_FORCE if the specified name is already present in the database, try variations with a numerical suffix like "_123" .. py:data:: SN_NODUMMY automatically prepend the name with '_' if it begins with a dummy suffix such as 'sub_'. See also SN_IDBENC .. py:data:: SN_DELTAIL if name cannot be set because of a tail byte, delete the hindering item .. py:data:: SN_MULTI if the specified address already has a name, then add the new name as a regular comment "Alternative name is ...". Except when the new name is public and the old one is not or when the old name is weak and the new one is not. In these cases we act as if bit SN_MULTI_FORCE is specified. If the new name only slightly differs from the old one, for example, only by the initial underscore or the artificial suffix '_##', then we ignore it. .. py:data:: SN_MULTI_FORCE if the specified address already has a name, put this old name into a regular comment and set the specified name. This bit may be used only with SN_MULTI. .. py:function:: force_name(ea: ida_idaapi.ea_t, name: str, flags: int = 0) -> bool .. py:function:: del_global_name(ea: ida_idaapi.ea_t) -> bool .. py:function:: del_local_name(ea: ida_idaapi.ea_t) -> bool .. py:function:: set_dummy_name(_from: ida_idaapi.ea_t, ea: ida_idaapi.ea_t) -> bool Give an autogenerated (dummy) name. Autogenerated names have special prefixes (loc_...). :param ea: linear address :returns: 1: ok, dummy name is generated or the byte already had a name :returns: 0: failure, invalid address or tail byte .. py:function:: make_name_auto(ea: ida_idaapi.ea_t) -> bool .. py:function:: make_name_user(ea: ida_idaapi.ea_t) -> bool .. py:data:: UCDR_STRLIT string literals .. py:data:: UCDR_NAME regular (unmangled) names .. py:data:: UCDR_MANGLED mangled names .. py:data:: UCDR_TYPE type names .. py:data:: VNT_IDENT identifier (e.g., function name) .. py:data:: VNT_TYPE type name (can contain '<', '>', ...) .. py:data:: VNT_UDTMEM UDT (structure, union, enum) member. .. py:data:: VNT_STRLIT string literal .. py:data:: VNT_VISIBLE visible cp (obsolete; will be deleted) .. py:function:: is_valid_cp(cp: wchar32_t, kind: nametype_t, data: void * = None) -> bool Is the given codepoint acceptable in the given context? .. py:function:: set_cp_validity(*args) -> None 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 .. py:function:: 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 .. py:function:: is_ident_cp(cp: wchar32_t) -> bool Can a character appear in a name? (present in ::NameChars or ::MangleChars) .. py:function:: is_strlit_cp(cp: wchar32_t, specific_ranges: rangeset_crefvec_t const * = None) -> 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) .. py:function:: is_visible_cp(cp: wchar32_t) -> bool Can a character be displayed in a name? (present in ::NameChars) .. py:function:: is_ident(name: str) -> bool Is a valid name? (including ::MangleChars) .. py:function:: is_uname(name: str) -> bool Is valid user-specified name? (valid name & !dummy prefix). :param name: name to test. may be nullptr. :returns: 1: yes :returns: 0: no .. py:function:: is_valid_typename(name: str) -> bool Is valid type name? :param name: name to test. may be nullptr. :returns: 1: yes :returns: 0: no .. py:function:: extract_name(line: str, x: int) -> str Extract a name or address from the specified string. :param line: input string :param x: x coordinate of cursor :returns: -1 if cannot extract. otherwise length of the name .. py:function:: hide_name(ea: ida_idaapi.ea_t) -> None Remove name from the list of names :param ea: address of the name .. py:function:: show_name(ea: ida_idaapi.ea_t) -> None Insert name to the list of names. .. py:function:: get_name_ea(_from: ida_idaapi.ea_t, name: str) -> ida_idaapi.ea_t Get the address of a name. This function resolves a name into an address. It can handle regular global and local names, as well as debugger names. :param name: any name in the program or nullptr :returns: address of the name or BADADDR .. py:function:: get_name_base_ea(_from: ida_idaapi.ea_t, to: ida_idaapi.ea_t) -> ida_idaapi.ea_t Get address of the name used in the expression for the address :param to: the referenced address :returns: address of the name used to represent the operand .. py:function:: get_name_value(_from: ida_idaapi.ea_t, name: str) -> uval_t * Get value of the name. This function knows about: regular names, enums, special segments, etc. :param name: any name in the program or nullptr :returns: Name value result codes .. py:data:: NT_NONE name doesn't exist or has no value .. py:data:: NT_BYTE name is byte name (regular name) .. py:data:: NT_LOCAL name is local label .. py:data:: NT_STKVAR name is stack variable name .. py:data:: NT_ENUM name is symbolic constant .. py:data:: NT_ABS name is absolute symbol (SEG_ABSSYM) .. py:data:: NT_SEG name is segment or segment register name .. py:data:: NT_STROFF name is structure member .. py:data:: NT_BMASK name is a bit group mask name .. py:data:: NT_REGVAR name is a renamed register (*value is idx into pfn->regvars) .. py:data:: GN_VISIBLE replace forbidden characters by SUBSTCHAR .. py:data:: GN_COLORED return colored name .. py:data:: GN_DEMANGLED return demangled name .. py:data:: GN_STRICT fail if cannot demangle .. py:data:: GN_SHORT use short form of demangled name .. py:data:: GN_LONG use long form of demangled name .. py:data:: GN_LOCAL try to get local name first; if failed, get global .. py:data:: GN_ISRET for dummy names: use retloc .. py:data:: GN_NOT_ISRET for dummy names: do not use retloc .. py:data:: GN_NOT_DUMMY do not return a dummy name .. py:function:: get_visible_name(ea: ida_idaapi.ea_t, gtn_flags: int = 0) -> str .. py:function:: get_short_name(ea: ida_idaapi.ea_t, gtn_flags: int = 0) -> str .. py:function:: get_long_name(ea: ida_idaapi.ea_t, gtn_flags: int = 0) -> str .. py:function:: get_colored_short_name(ea: ida_idaapi.ea_t, gtn_flags: int = 0) -> str .. py:function:: get_colored_long_name(ea: ida_idaapi.ea_t, gtn_flags: int = 0) -> str .. py:function:: get_demangled_name(ea: ida_idaapi.ea_t, inhibitor: int, demform: int, gtn_flags: int = 0) -> str .. py:function:: get_colored_demangled_name(ea: ida_idaapi.ea_t, inhibitor: int, demform: int, gtn_flags: int = 0) -> str .. py:function:: get_name_color(_from: ida_idaapi.ea_t, ea: ida_idaapi.ea_t) -> color_t Calculate flags for get_ea_name() function. Get name color. :param ea: linear address .. py:data:: GETN_APPZERO meaningful only if the name refers to a structure. append a struct field name if the field offset is zero? .. py:data:: GETN_NOFIXUP ignore the fixup information when producing the name .. py:data:: GETN_NODUMMY do not create a new dummy name but pretend it exists .. py:function:: get_name_expr(_from: ida_idaapi.ea_t, n: int, ea: ida_idaapi.ea_t, off: int, flags: int = 1) -> str 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 +/- ). It also knows about structure members and arrays. If the specified address doesn't have a name, a dummy name is generated. :param n: number of referencing operand. for data items specify 0 :param ea: address to convert to name expression :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. :param flags: Name expression flags :returns: < 0 if address is not valid, no segment or other failure. otherwise the length of the name expression in characters. .. py:function:: get_nice_colored_name(ea: ida_idaapi.ea_t, flags: int = 0) -> str 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: linear address :param flags: Nice colored name flags :returns: the length of the generated name in bytes. .. py:data:: GNCN_NOSEG ignore the segment prefix when producing the name .. py:data:: GNCN_NOCOLOR generate an uncolored name .. py:data:: GNCN_NOLABEL don't generate labels .. py:data:: GNCN_NOFUNC don't generate funcname+... expressions .. py:data:: GNCN_SEG_FUNC generate both segment and function names (default is to omit segment name if a function name is present) .. py:data:: GNCN_SEGNUM segment part is displayed as a hex number .. py:data:: GNCN_REQFUNC return 0 if the address does not belong to a function .. py:data:: GNCN_REQNAME return 0 if the address can only be represented as a hex number .. py:data:: GNCN_NODBGNM don't use debug names .. py:data:: GNCN_PREFDBG if using debug names, prefer debug names over function names .. py:function:: append_struct_fields(disp: adiff_t *, n: int, path: tid_t const *, flags: flags64_t, delta: adiff_t, appzero: bool) -> str Append names of struct fields to a name if the name is a struct name. :param disp: displacement from the name :param n: operand number in which the name appears :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). :param flags: the input flags. they will be returned if the struct cannot be found. :param delta: delta to add to displacement :param appzero: should append a struct field name if the displacement is zero? :returns: flags of the innermost struct member or the input flags .. py:function:: is_public_name(ea: ida_idaapi.ea_t) -> bool .. py:function:: make_name_public(ea: ida_idaapi.ea_t) -> None .. py:function:: make_name_non_public(ea: ida_idaapi.ea_t) -> None .. py:function:: is_weak_name(ea: ida_idaapi.ea_t) -> bool .. py:function:: make_name_weak(ea: ida_idaapi.ea_t) -> None .. py:function:: make_name_non_weak(ea: ida_idaapi.ea_t) -> None .. py:function:: get_nlist_size() -> size_t .. py:function:: get_nlist_idx(ea: ida_idaapi.ea_t) -> size_t .. py:function:: is_in_nlist(ea: ida_idaapi.ea_t) -> bool .. py:function:: get_nlist_ea(idx: size_t) -> ida_idaapi.ea_t .. py:function:: get_nlist_name(idx: size_t) -> str .. py:function:: rebuild_nlist() -> None .. py:function:: reorder_dummy_names() -> None Renumber dummy names. .. py:data:: DEBNAME_EXACT find a name at exactly the specified address .. py:data:: DEBNAME_LOWER find a name with the address >= the specified address .. py:data:: DEBNAME_UPPER find a name with the address > the specified address .. py:data:: DEBNAME_NICE find a name with the address <= the specified address .. py:class:: ea_name_t(*args) Bases: :py:obj:`object` .. py:attribute:: thisown .. py:attribute:: ea :type: ida_idaapi.ea_t .. py:attribute:: name :type: str .. py:function:: set_debug_name(ea: ida_idaapi.ea_t, name: str) -> bool .. py:function:: get_debug_name(ea_ptr: ea_t *, how: debug_name_how_t) -> str .. py:function:: del_debug_names(ea1: ida_idaapi.ea_t, ea2: ida_idaapi.ea_t) -> None .. py:function:: get_debug_name_ea(name: str) -> ida_idaapi.ea_t .. py:data:: DQT_NPURGED_8 only calculate number of purged bytes (sizeof(arg)==8) .. py:data:: DQT_NPURGED_4 only calculate number of purged bytes (sizeof(arg)==4) .. py:data:: DQT_NPURGED_2 only calculate number of purged bytes (sizeof(arg)==2) .. py:data:: DQT_COMPILER only detect compiler that generated the name .. py:data:: DQT_NAME_TYPE only detect the name type (data/code) .. py:data:: DQT_FULL really demangle .. py:function:: demangle_name(name: str, disable_mask: int, demreq: demreq_type_t = DQT_FULL) -> str Demangle a name. :param name: name to demangle :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_). :param demreq: the request type demreq_type_t :returns: ME_... or MT__ bitmasks from demangle.hpp .. py:function:: is_name_defined_locally(*args) -> bool Is the name defined locally in the specified function? :param pfn: pointer to function :param name: name to check :param ignore_name_def: which names to ignore when checking :param ea1: the starting address of the range inside the function (optional) :param ea2: the ending address of the range inside the function (optional) :returns: true if the name has been defined .. py:function:: cleanup_name(ea: ida_idaapi.ea_t, name: str, flags: int = 0) -> str .. py:data:: CN_KEEP_TRAILING_DIGITS do not remove "_\d+" at the end of name .. py:data:: CN_KEEP_UNDERSCORES do not remove leading underscores. but it is ok to remove __imp_. .. py:data:: ME_INTERR .. py:data:: ME_PARAMERR .. py:data:: ME_ILLSTR .. py:data:: ME_SMALLANS .. py:data:: ME_FRAME .. py:data:: ME_NOCOMP .. py:data:: ME_ERRAUTO .. py:data:: ME_NOHASHMEM .. py:data:: ME_NOSTRMEM .. py:data:: ME_NOERROR_LIMIT .. py:data:: M_PRCMSK .. py:data:: MT_DEFAULT .. py:data:: MT_CDECL .. py:data:: MT_PASCAL .. py:data:: MT_STDCALL .. py:data:: MT_FASTCALL .. py:data:: MT_THISCALL .. py:data:: MT_FORTRAN .. py:data:: MT_SYSCALL .. py:data:: MT_INTERRUPT .. py:data:: MT_MSFASTCALL .. py:data:: MT_CLRCALL .. py:data:: MT_DMDCALL .. py:data:: MT_VECTORCALL .. py:data:: MT_REGCALL .. py:data:: MT_LOCALNAME .. py:data:: M_SAVEREGS .. py:data:: M_CLASS .. py:data:: MT_PUBLIC .. py:data:: MT_PRIVATE .. py:data:: MT_PROTECT .. py:data:: MT_MEMBER .. py:data:: MT_VTABLE .. py:data:: MT_RTTI .. py:data:: M_PARMSK .. py:data:: MT_PARSHF .. py:data:: MT_PARMAX .. py:data:: M_ELLIPSIS .. py:data:: MT_VOIDARG .. py:data:: M_STATIC .. py:data:: M_VIRTUAL .. py:data:: M_AUTOCRT .. py:data:: M_TYPMASK .. py:data:: MT_OPERAT .. py:data:: MT_CONSTR .. py:data:: MT_DESTR .. py:data:: MT_CASTING .. py:data:: MT_CLRCDTOR .. py:data:: M_TRUNCATE .. py:data:: M_THUNK .. py:data:: M_ANONNSP .. py:data:: M_TMPLNAM .. py:data:: M_DBGNAME .. py:data:: M_COMPILER .. py:data:: MT_MSCOMP .. py:data:: MT_BORLAN .. py:data:: MT_WATCOM .. py:data:: MT_OTHER .. py:data:: MT_GNU .. py:data:: MT_GCC3 .. py:data:: MT_VISAGE .. py:data:: MNG_PTRMSK .. py:data:: MNG_DEFNEAR .. py:data:: MNG_DEFNEARANY .. py:data:: MNG_DEFFAR .. py:data:: MNG_NOPTRTYP16 .. py:data:: MNG_DEFHUGE .. py:data:: MNG_DEFPTR64 .. py:data:: MNG_DEFNONE .. py:data:: MNG_NOPTRTYP .. py:data:: MNG_NODEFINIT .. py:data:: MNG_NOUNDERSCORE .. py:data:: MNG_NOTYPE .. py:data:: MNG_NORETTYPE .. py:data:: MNG_NOBASEDT .. py:data:: MNG_NOCALLC .. py:data:: MNG_NOPOSTFC .. py:data:: MNG_NOSCTYP .. py:data:: MNG_NOTHROW .. py:data:: MNG_NOSTVIR .. py:data:: MNG_NOECSU .. py:data:: MNG_NOCSVOL .. py:data:: MNG_NOCLOSUR .. py:data:: MNG_NOUNALG .. py:data:: MNG_NOMANAGE .. py:data:: MNG_NOMODULE .. py:data:: MNG_SHORT_S .. py:data:: MNG_SHORT_U .. py:data:: MNG_ZPT_SPACE .. py:data:: MNG_DROP_IMP .. py:data:: MNG_IGN_ANYWAY .. py:data:: MNG_IGN_JMP .. py:data:: MNG_MOVE_JMP .. py:data:: MNG_COMPILER_MSK .. py:data:: MNG_SHORT_FORM .. py:data:: MNG_LONG_FORM .. py:data:: MNG_CALC_VALID .. py:function:: get_mangled_name_type(name: str) -> mangled_name_type_t .. py:function:: get_debug_names(*args) -> PyObject * .. py:function:: get_ea_name(ea: ida_idaapi.ea_t, gtn_flags: int = 0) -> str Get name at the specified address. :param ea: linear address :param gtn_flags: how exactly the name should be retrieved. combination of bits for get_ea_name() function. There is a convenience bits :returns: success .. py:function:: validate_name(name: str, type: nametype_t, flags: int = 1) -> PyObject * Validate a name. If SN_NOCHECK is specified, 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: ptr to name. the name will be modified :param type: the type of name we want to validate :param flags: see SN_* :returns: success .. py:class:: NearestName(ea_names) Bases: :py:obj:`object` Utility class to help find the nearest name in a given ea/name dictionary .. py:method:: update(ea_names) Updates the ea/names map .. py:method:: find(ea) Returns a tupple (ea, name, pos) that is the nearest to the passed ea If no name is matched then None is returned .. py:function:: calc_gtn_flags(fromaddr, ea) Calculate flags for get_ea_name() function :param fromaddr: the referring address. May be BADADDR. :param ea: linear address :returns: flags .. py:data:: cvar .. py:data:: ignore_none .. py:data:: ignore_regvar .. py:data:: ignore_llabel .. py:data:: ignore_stkvar .. py:data:: ignore_glabel .. py:data:: MANGLED_CODE .. py:data:: MANGLED_DATA .. py:data:: MANGLED_UNKNOWN