Module index

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) -> bool
Remove an address from a problem list
type: (C++: problist_id_t) problem list type
ea: (C++: ea_t) linear address
return: success
def get_problem(*args) ‑> ea_t
get_problem(type, lowea) -> ea_t
Get an address from the specified problem list. The address is not removed from the list.
type: (C++: problist_id_t) problem list type
lowea: (C++: ea_t) the returned address will be higher or equal than the specified
address
return: linear address or BADADDR
def get_problem_desc(*args) ‑> qstring *
get_problem_desc(t, ea) -> str
Get 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) -> bool
Check 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 type
ea: (C++: ea_t) linear address
msg: (C++: const char *) a user-friendly message to be displayed instead of the default more
generic one associated with the type of problem. Defaults to nullptr.
def was_ida_decision(*args) ‑> bool
was_ida_decision(ea) -> bool
ea: ea_t