30#define FUNC_IMPORT_PREFIX "__imp_"
57#define SN_NOCHECK 0x01
63#define SN_NON_PUBLIC 0x04
65#define SN_NON_WEAK 0x10
67#define SN_NON_AUTO 0x40
73#define SN_NOWARN 0x100
78#define SN_IDBENC 0x400
84#define SN_NODUMMY 0x1000
87#define SN_DELTAIL 0x2000
89#define SN_MULTI 0x4000
98#define SN_MULTI_FORCE 0x8000
170 int flags = SN_NOCHECK);
337#define GN_VISIBLE 0x0001
338#define GN_COLORED 0x0002
339#define GN_DEMANGLED 0x0004
340#define GN_STRICT 0x0008
341#define GN_SHORT 0x0010
342#define GN_LONG 0x0020
343#define GN_LOCAL 0x0040
344#define GN_ISRET 0x0080
345#define GN_NOT_ISRET 0x0100
346#define GN_NOT_DUMMY 0x0200
364 return get_ea_name(out, ea, GN_VISIBLE|GN_COLORED|gtn_flags);
369 return get_ea_name(out, ea, GN_VISIBLE|GN_DEMANGLED|GN_SHORT|gtn_flags);
374 return get_ea_name(out, ea, GN_VISIBLE|GN_DEMANGLED|GN_LONG|gtn_flags);
379 return get_ea_name(out, ea, GN_VISIBLE|GN_COLORED|GN_DEMANGLED|GN_SHORT|gtn_flags);
384 return get_ea_name(out, ea, GN_VISIBLE|GN_COLORED|GN_DEMANGLED|GN_LONG|gtn_flags);
397 gtn_flags |= GN_VISIBLE | GN_DEMANGLED;
430 get_ea_name(&out, ea, GN_VISIBLE|GN_COLORED|gtn_flags);
437 get_ea_name(&out, ea, GN_VISIBLE|GN_DEMANGLED|GN_SHORT|gtn_flags);
444 get_ea_name(&out, ea, GN_VISIBLE|GN_DEMANGLED|GN_LONG|gtn_flags);
451 get_ea_name(&out, ea, GN_VISIBLE|GN_COLORED|GN_DEMANGLED|GN_SHORT|gtn_flags);
458 get_ea_name(&out, ea, GN_VISIBLE|GN_COLORED|GN_DEMANGLED|GN_LONG|gtn_flags);
472 gtn_flags |= GN_VISIBLE | GN_DEMANGLED;
509#define GETN_APPZERO 0x0001
511#define GETN_NOFIXUP 0x0002
512#define GETN_NODUMMY 0x0004
541 int flags=GETN_APPZERO);
564#define GNCN_NOSEG 0x0001
565#define GNCN_NOCOLOR 0x0002
566#define GNCN_NOLABEL 0x0004
567#define GNCN_NOFUNC 0x0008
568#define GNCN_SEG_FUNC 0x0010
569#define GNCN_SEGNUM 0x0020
570#define GNCN_REQFUNC 0x0040
571#define GNCN_REQNAME 0x0080
572#define GNCN_NODBGNM 0x0100
573#define GNCN_PREFDBG 0x0200
795#define CN_KEEP_TRAILING_DIGITS 0x01
796#define CN_KEEP_UNDERSCORES 0x02
A function is a set of continuous ranges of addresses with characteristics.
Definition funcs.hpp:85
uint64 flags
Function flags
Definition funcs.hpp:87
Reimplementation of vector class from STL.
Definition pro.h:2250
idaman func_t *ida_export get_func(ea_t ea)
Get pointer to function structure by address.
bool func_contains(func_t *pfn, ea_t ea)
Does the given function contain the given address?
Definition funcs.hpp:305
uchar color_t
see <lines.hpp>
Definition kernwin.hpp:26
idaman size_t n
Definition pro.h:997
const tinfo_t & type
Definition hexrays.hpp:7301
Contains the inf structure definition and some functions common to the whole IDA project.
uval_t uval_t
Definition kernwin.hpp:1878
ssize_t idaapi get_colored_short_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:377
idaman bool ida_export is_name_defined_locally(func_t *pfn, const char *name, ignore_name_def_t ignore_name_def, ea_t ea1=BADADDR, ea_t ea2=BADADDR)
Is the name defined locally in the specified function?
qvector< ea_name_t > ea_name_vec_t
vector of ea,name pairs
Definition name.hpp:694
idaman ssize_t ida_export get_ea_name(qstring *out, ea_t ea, int gtn_flags=0, getname_info_t *gtni=nullptr)
Get name at the specified address.
idaman bool ida_export cleanup_name(qstring *out, ea_t ea, const char *name, uint32 flags=0)
const ignore_name_def_t ignore_regvar
Definition name.hpp:759
int ignore_name_def_t
What name types to ignore.
Definition name.hpp:756
idaman bool ida_export is_uname(const char *name)
Is valid user-specified name?
DECLARE_TYPE_AS_MOVABLE(ea_name_t)
idaman ea_t ida_export get_debug_name_ea(const char *name)
idaman bool ida_export make_name_user(ea_t ea)
int32 detect_compiler_using_demangler(const char *name)
Definition name.hpp:750
idaman bool ida_export make_name_auto(ea_t ea)
idaman bool ida_export is_weak_name(ea_t ea)
idaman bool ida_export is_public_name(ea_t ea)
idaman bool ida_export is_valid_typename(const char *name)
Is valid type name?
idaman bool ida_export is_in_nlist(ea_t ea)
Is the name included into the name list?
idaman bool ida_export is_valid_cp(wchar32_t cp, nametype_t kind, void *data=nullptr)
Is the given codepoint acceptable in the given context?
bool del_global_name(ea_t ea)
Definition name.hpp:114
bool is_strlit_cp(wchar32_t cp, const rangeset_crefvec_t *specific_ranges=nullptr)
Can a character appear in a string literal (present in StrlitChars) If 'specific_ranges' are specifie...
Definition name.hpp:202
idaman bool ida_export set_debug_name(ea_t ea, const char *name)
idaman bool ida_export is_ident(const char *name)
Is a valid name? (including MangleChars)
bool is_visible_cp(wchar32_t cp)
Can a character be displayed in a name? (present in NameChars)
Definition name.hpp:208
idaman void ida_export make_name_non_weak(ea_t ea)
const ignore_name_def_t ignore_stkvar
Definition name.hpp:761
idaman size_t ida_export get_nlist_idx(ea_t ea)
Get index of the name in the list.
idaman size_t ida_export get_nlist_size(void)
Get number of names in the list.
idaman bool ida_export validate_name(qstring *name, nametype_t type, int flags=SN_NOCHECK)
Validate a name.
idaman void ida_export reorder_dummy_names(void)
Renumber dummy names.
idaman ssize_t ida_export extract_name(qstring *out, const char *line, int x)
Extract a name or address from the specified string.
idaman ssize_t ida_export get_name_expr(qstring *out, ea_t from, int n, ea_t ea, uval_t off, int flags=GETN_APPZERO)
Convert address to name expression (name with a displacement).
idaman int ida_export get_name_value(uval_t *value, ea_t from, const char *name)
Get value of the name.
idaman void ida_export set_cp_validity(ucdr_kind_t kind, wchar32_t cp, wchar32_t endcp=BADCP, bool valid=true)
Mark the given codepoint (or range) as acceptable or unacceptable in the given context If 'endcp' is ...
bool is_ident_cp(wchar32_t cp)
Can a character appear in a name? (present in NameChars or MangleChars)
Definition name.hpp:194
idaman ea_t ida_export dummy_name_ea(const char *name)
Is dummy name?
const ignore_name_def_t ignore_llabel
Definition name.hpp:760
ssize_t idaapi get_colored_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:362
ssize_t idaapi get_visible_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:357
idaman void ida_export del_debug_names(ea_t ea1, ea_t ea2)
nametype_t
Definition name.hpp:148
@ VNT_VISIBLE
visible cp (obsolete; will be deleted)
Definition name.hpp:153
@ VNT_TYPE
type name (can contain '<', '>', ...)
Definition name.hpp:150
@ VNT_UDTMEM
UDT (structure, union, enum) member.
Definition name.hpp:151
@ VNT_STRLIT
string literal
Definition name.hpp:152
@ VNT_IDENT
identifier (e.g., function name)
Definition name.hpp:149
idaman ea_t ida_export get_nlist_ea(size_t idx)
Get address from the list at 'idx'.
ssize_t idaapi get_colored_demangled_name(qstring *out, ea_t ea, int32 inhibitor, int demform, int gtn_flags=0)
Definition name.hpp:401
idaman void ida_export make_name_public(ea_t ea)
bool force_name(ea_t ea, const char *name, int flags=0)
Definition name.hpp:104
idaman int ida_export set_debug_names(const ea_t *addrs, const char *const *names, int qty)
ssize_t get_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:352
idaman void ida_export get_debug_names(ea_name_vec_t *names, ea_t ea1, ea_t ea2)
idaman bool ida_export set_name(ea_t ea, const char *name, int flags=0)
Set or delete name of an item at the specified address.
idaman int32 ida_export demangle_name(qstring *out, const char *name, uint32 disable_mask, demreq_type_t demreq=DQT_FULL)
Demangle a name.
idaman color_t ida_export get_name_color(ea_t from, ea_t ea)
Get name color.
idaman ea_t ida_export get_name_base_ea(ea_t from, ea_t to)
Get address of the name used in the expression for the address.
ucdr_kind_t
Definition name.hpp:140
@ UCDR_STRLIT
string literals
Definition name.hpp:141
@ UCDR_MANGLED
mangled names
Definition name.hpp:143
@ UCDR_TYPE
type names
Definition name.hpp:144
@ UCDR_NAME
regular (unmangled) names
Definition name.hpp:142
idaman void ida_export show_name(ea_t ea)
Insert name to the list of names.
debug_name_how_t
Specify strategy for retrieving debug names.
Definition name.hpp:678
@ DEBNAME_EXACT
find a name at exactly the specified address
Definition name.hpp:679
@ DEBNAME_UPPER
find a name with the address > the specified address
Definition name.hpp:681
@ DEBNAME_LOWER
find a name with the address >= the specified address
Definition name.hpp:680
@ DEBNAME_NICE
find a name with the address <= the specified address
Definition name.hpp:682
int calc_gtn_flags(ea_t from, ea_t ea)
Calculate flags for get_ea_name() function.
Definition name.hpp:490
ssize_t idaapi get_demangled_name(qstring *out, ea_t ea, int32 inhibitor, int demform, int gtn_flags=0)
Definition name.hpp:387
idaman const char *ida_export get_nlist_name(size_t idx)
Get name using idx.
ssize_t idaapi get_colored_long_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:382
bool del_local_name(ea_t ea)
Definition name.hpp:115
idaman bool ida_export get_cp_validity(ucdr_kind_t kind, wchar32_t cp, wchar32_t endcp=BADCP)
Is the given codepoint (or range) acceptable in the given context?
const ignore_name_def_t ignore_none
Definition name.hpp:758
idaman int ida_export get_struct_operand(adiff_t *disp, adiff_t *delta, tid_t *path, ea_t ea, int n)
Get offset within a structure if the operand refers to structure.
ssize_t idaapi get_short_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:367
const ignore_name_def_t ignore_glabel
Definition name.hpp:762
idaman ea_t ida_export get_name_ea(ea_t from, const char *name)
Get the address of a name.
ssize_t idaapi get_long_name(qstring *out, ea_t ea, int gtn_flags=0)
Definition name.hpp:372
idaman void ida_export hide_name(ea_t ea)
Remove name from the list of names.
idaman ssize_t ida_export get_nice_colored_name(qstring *buf, ea_t ea, int flags=0)
Get a nice colored name at the specified address.
idaman void ida_export rebuild_nlist(void)
Rebuild the name list.
idaman void ida_export make_name_weak(ea_t ea)
idaman ssize_t ida_export get_debug_name(qstring *out, ea_t *ea_ptr, debug_name_how_t how)
idaman flags64_t ida_export append_struct_fields(qstring *out, adiff_t *disp, int n, const tid_t *path, int plen, flags64_t flags, adiff_t delta, bool appzero)
Append names of struct fields to a name if the name is a struct name.
idaman void ida_export make_name_non_public(ea_t ea)
idaman bool ida_export set_dummy_name(ea_t from, ea_t ea)
Give an autogenerated (dummy) name.
demreq_type_t
Definition name.hpp:714
@ DQT_COMPILER
only detect compiler that generated the name
Definition name.hpp:718
@ DQT_NAME_TYPE
only detect the name type (data/code)
Definition name.hpp:719
@ DQT_NPURGED_8
only calculate number of purged bytes (sizeof(arg)==8)
Definition name.hpp:715
@ DQT_NPURGED_4
only calculate number of purged bytes (sizeof(arg)==4)
Definition name.hpp:716
@ DQT_FULL
really demangle
Definition name.hpp:720
@ DQT_NPURGED_2
only calculate number of purged bytes (sizeof(arg)==2)
Definition name.hpp:717
unsigned int uint32
unsigned 32 bit value
Definition pro.h:348
uint32 wchar32_t
Definition pro.h:371
int64 adiff_t
Definition pro.h:424
uint64 ea_t
Definition pro.h:421
int int32
signed 32 bit value
Definition pro.h:347
unsigned char uchar
unsigned 8 bit value
Definition pro.h:337
uint64 flags64_t
64-bit flags for each address
Definition pro.h:5009
ptrdiff_t ssize_t
Signed size_t - used to check for size overflows when the counter becomes negative.
Definition pro.h:381
ea_t tid_t
type id (for enums, structs, etc)
Definition pro.h:5010
_qstring< char > qstring
regular string
Definition pro.h:3694
qvector< const rangeset_t * > rangeset_crefvec_t
Definition range.hpp:287
ea, name pair
Definition name.hpp:687
ea_t ea
Definition name.hpp:688
ea_name_t(void)
Definition name.hpp:690
qstring name
Definition name.hpp:689
ea_name_t(ea_t _ea, const qstring &_name)
Definition name.hpp:691
Additional information for get_ea_name() function.
Definition name.hpp:308
int32 inhibitor
codes to inhibit parts of demangled name (see MNG_).
Definition name.hpp:310
int32 demcode
out: return value of demangler
Definition name.hpp:313
size_t cb
size of this struct
Definition name.hpp:309
int32 demform
demangle only if idainfo::demnames is equal to 'demform'.
Definition name.hpp:312
getname_info_t(void)
Definition name.hpp:314