IDA SDK
|
Middle-level search functions. More...
Macros | |
#define | SEARCH_UP 0x000 |
search towards lower addresses | |
#define | SEARCH_DOWN 0x001 |
search towards higher addresses | |
#define | SEARCH_NEXT 0x002 |
skip the starting address when searching. More... | |
#define | SEARCH_CASE 0x004 |
case-sensitive search (case-insensitive otherwise) | |
#define | SEARCH_REGEX 0x008 |
regular expressions in search string (supported only for the text search) | |
#define | SEARCH_NOBRK 0x010 |
do not test if the user clicked cancel to interrupt the search | |
#define | SEARCH_NOSHOW 0x020 |
do not display the search progress/refresh screen | |
#define | SEARCH_IDENT 0x080 |
search for an identifier (text search). More... | |
#define | SEARCH_BRK 0x100 |
return BADADDR if the search was cancelled. | |
#define | SEARCH_USE 0x200 |
find_reg_access: search for a use (read access) | |
#define | SEARCH_DEF 0x400 |
find_reg_access: search for a definition (write access) | |
Functions | ||||||||||
THREAD_SAFE bool | search_down (int sflag) | |||||||||
Is the SEARCH_DOWN bit set? | ||||||||||
find_... functions | ||||||||||
| ||||||||||
idaman ea_t ida_export | find_error (ea_t ea, int sflag, int *opnum=nullptr) | |||||||||
Find next error or problem. | ||||||||||
idaman ea_t ida_export | find_notype (ea_t ea, int sflag, int *opnum=nullptr) | |||||||||
Find next operand without any type info. | ||||||||||
idaman ea_t ida_export | find_unknown (ea_t ea, int sflag) | |||||||||
Find next unexplored address. | ||||||||||
idaman ea_t ida_export | find_defined (ea_t ea, int sflag) | |||||||||
Find next ea that is the start of an instruction or data. | ||||||||||
idaman ea_t ida_export | find_suspop (ea_t ea, int sflag, int *opnum=nullptr) | |||||||||
Find next suspicious operand. | ||||||||||
idaman ea_t ida_export | find_data (ea_t ea, int sflag) | |||||||||
Find next data address. | ||||||||||
idaman ea_t ida_export | find_code (ea_t ea, int sflag) | |||||||||
Find next code address. | ||||||||||
idaman ea_t ida_export | find_not_func (ea_t ea, int sflag) | |||||||||
Find next code address that does not belong to a function. | ||||||||||
idaman ea_t ida_export | find_imm (ea_t ea, int sflag, uval_t search_value, int *opnum=nullptr) | |||||||||
Find next immediate operand with the given value. | ||||||||||
idaman ea_t ida_export | find_text (ea_t start_ea, int y, int x, const char *ustr, int sflag) | |||||||||
See search() | ||||||||||
idaman ea_t ida_export | find_reg_access (struct reg_access_t *out, ea_t start_ea, ea_t end_ea, const char *regname, int sflag) | |||||||||
Find access to a register. More... | ||||||||||
idaman int ida_export | search (void *ud, place_t *start, const place_t *end, int *startx, const char *str, int sflag) | |||||||||
Search for a text substring (low level function). More... | ||||||||||
Middle-level search functions.
They all are controlled by Search flags
#define SEARCH_NEXT 0x002 |
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.
#define SEARCH_IDENT 0x080 |
search for an identifier (text search).
it means that the characters before and after the match cannot be is_visible_char().
idaman ea_t ida_export find_reg_access | ( | struct reg_access_t * | out, |
ea_t | start_ea, | ||
ea_t | end_ea, | ||
const char * | regname, | ||
int | sflag | ||
) |
Find access to a register.
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. |
start_ea | starting address |
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. |
regname | the register to search for. |
sflag | combination of Search flags bits. |
idaman int ida_export search | ( | void * | ud, |
place_t * | start, | ||
const place_t * | end, | ||
int * | startx, | ||
const char * | str, | ||
int | sflag | ||
) |
Search for a text substring (low level function).
ud | line array parameter | |
[in,out] | start | pointer to starting place:
|
end | pointer to ending place:
| |
[in,out] | startx | pointer to starting X coordinate |
str | substring to search for. | |
sflag | Search flags |
0 | substring not found |
1 | substring found. The matching position is returned in:
|
2 | search was cancelled by ctrl-break. The farthest searched address is returned in the same manner as in the successful return (1). |
3 | the input regular expression is bad. The error message was displayed. |