get_func_flags

retrieve function flags
     ea - any address belonging to the function
returns: -1 - function doesn't exist
         otherwise returns the flags FUNC_...

#define get_func_flags(ea)        get_func_attr(ea, FUNCATTR_FLAGS)

#define FUNC_NORET         0x00000001     // function doesn't return
#define FUNC_FAR           0x00000002     // far function
#define FUNC_LIB           0x00000004     // library function
#define FUNC_STATIC        0x00000008     // static function
#define FUNC_FRAME         0x00000010     // function uses frame pointer (BP)
#define FUNC_USERFAR       0x00000020     // user has specified far-ness
                                          // of the function
#define FUNC_HIDDEN        0x00000040     // a hidden function
#define FUNC_THUNK         0x00000080     // thunk (jump) function
#define FUNC_BOTTOMBP      0x00000100     // BP points to the bottom of the stack frame
#define FUNC_NORET_PENDING 0x00000200     // Function 'non-return' analysis
                                          // must be performed. This flag is
                                          // verified upon func_does_return()
#define FUNC_SP_READY      0x00000400     // 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
#define FUNC_FUZZY_SP      0x00000800     // Function changes SP in untraceable way,
                                          // for example: and esp, 0FFFFFFF0h
#define FUNC_PROLOG_OK     0x00001000     // Prolog analysis has be performed
                                          // by last SP-analysis
#define FUNC_PURGED_OK     0x00004000     // '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.
#define FUNC_TAIL          0x00008000     // This is a function tail.
                                          // Other bits must be clear
                                          // (except FUNC_HIDDEN)
#define FUNC_LUMINA        0x00010000     // Function info is provided by Lumina
#define FUNC_OUTLINE       0x00020000     // Outlined code, not a real function
#define FUNC_REANALYZE     0x00040000     // Function frame changed, request to
                                          // reanalyze the function after the last
                                          // insn is analyzed.
#define FUNC_UNWIND        0x00080000     // function is an exception unwind handler
#define FUNC_CATCH         0x00100000     // function is an exception catch handler

Last updated