Module ida_problems
Functions that deal with the list of problems.
There are several problem lists. An address may be inserted to any list. The
kernel simply maintains these lists, no additional processing is done.
The problem lists are accessible for the user from the View->Subviews->Problems
menu item.
Addresses in the lists are kept sorted. In general IDA just maintains these
lists without using them during analysis (except PR_ROLLED).
Global variables
var PR_ATTN
-
Attention! Probably erroneous situation.
var PR_BADSTACK
-
Failed to trace the value of the stack pointer.
var PR_COLLISION
-
FLAIR collision: the function with the given name already exists.
var PR_DECIMP
-
FLAIR match indecision: the patterns matched, but not the function(s) being referenced.
var PR_DISASM
-
Can't disasm.
var PR_END
-
Number of problem types.
var PR_FINAL
-
Decision to convert to instruction/data is made by IDA.
var PR_HEAD
-
Already head.
var PR_ILLADDR
-
Exec flows beyond limits.
var PR_JUMP
-
Jump by table !!!! ignored.
var PR_MANYLINES
-
Too many lines.
var PR_NOBASE
-
Can't find offset base.
var PR_NOCMT
-
Can't find comment (not used anymore)
var PR_NOFOP
-
Can't find forced op (not used anymore)
var PR_NONAME
-
Can't find name.
var PR_NOXREFS
-
Can't find references.
var PR_ROLLED
-
The decision made by IDA was wrong and rolled back.
Functions
def forget_problem(*args) ‑> bool
-
forget_problem(type, ea) -> boolRemove an address from a problem listtype: (C++: problist_id_t) problem list typeea: (C++: ea_t) linear addressreturn: success
def get_problem(*args) ‑> ea_t
-
get_problem(type, lowea) -> ea_tGet an address from the specified problem list. The address is not removed from the list.type: (C++: problist_id_t) problem list typelowea: (C++: ea_t) the returned address will be higher or equal than the specifiedaddressreturn: linear address or BADADDR
def get_problem_desc(*args) ‑> qstring *
-
get_problem_desc(t, ea) -> strGet the human-friendly description of the problem, if one was provided to remember_problem.t: (C++: problist_id_t) problem list type.ea: (C++: ea_t) linear address.return: the message length or -1 if none
def get_problem_name(*args) ‑> char const *
-
get_problem_name(type, longname=True) -> char const *Get problem list description.type: (C++: problist_id_t)longname: (C++: bool)
def is_problem_present(*args) ‑> bool
-
is_problem_present(t, ea) -> boolCheck if the specified address is present in the problem list.t: (C++: problist_id_t)ea: (C++: ea_t)
def remember_problem(*args) ‑> void
-
remember_problem(type, ea, msg=None)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.type: (C++: problist_id_t) problem list typeea: (C++: ea_t) linear addressmsg: (C++: const char *) a user-friendly message to be displayed instead of the default moregeneric one associated with the type of problem. Defaults to nullptr.
def was_ida_decision(*args) ‑> bool
-
was_ida_decision(ea) -> boolea: ea_t