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).

Attributes

SWIG_PYTHON_LEGACY_BOOL

cvar

PR_NOBASE

Can't find offset base.

PR_NONAME

Can't find name.

PR_NOFOP

Can't find forced op (not used anymore)

PR_NOCMT

Can't find comment (not used anymore)

PR_NOXREFS

Can't find references.

PR_JUMP

Jump by table !!!! ignored.

PR_DISASM

Can't disasm.

PR_HEAD

Already head.

PR_ILLADDR

Exec flows beyond limits.

PR_MANYLINES

Too many lines.

PR_BADSTACK

Failed to trace the value of the stack pointer.

PR_ATTN

Attention! Probably erroneous situation.

PR_FINAL

Decision to convert to instruction/data is made by IDA.

PR_ROLLED

The decision made by IDA was wrong and rolled back.

PR_COLLISION

FLAIR collision: the function with the given name already exists.

PR_DECIMP

FLAIR match indecision: the patterns matched, but not the function(s) being referenced.

PR_END

Number of problem types.

Functions

get_problem_desc(→ str)

Get the human-friendly description of the problem, if one was provided to remember_problem.

remember_problem(→ 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.

get_problem(→ ida_idaapi.ea_t)

Get an address from the specified problem list. The address is not removed from the list.

forget_problem(→ bool)

Remove an address from a problem list

get_problem_name(→ str)

Get problem list description.

is_problem_present(→ bool)

Check if the specified address is present in the problem list.

was_ida_decision(→ bool)

Module Contents

ida_problems.SWIG_PYTHON_LEGACY_BOOL
ida_problems.get_problem_desc(t: problist_id_t, ea: ida_idaapi.ea_t) str

Get the human-friendly description of the problem, if one was provided to remember_problem.

Parameters:
  • t – problem list type.

  • ea – linear address.

Returns:

the message length or -1 if none

ida_problems.remember_problem(type: problist_id_t, ea: ida_idaapi.ea_t, msg: str = None) 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.

Parameters:
  • type – problem list type

  • ea – linear address

  • msg – a user-friendly message to be displayed instead of the default more generic one associated with the type of problem. Defaults to nullptr.

ida_problems.get_problem(type: problist_id_t, lowea: ida_idaapi.ea_t) ida_idaapi.ea_t

Get an address from the specified problem list. The address is not removed from the list.

Parameters:
  • type – problem list type

  • lowea – the returned address will be higher or equal than the specified address

Returns:

linear address or BADADDR

ida_problems.forget_problem(type: problist_id_t, ea: ida_idaapi.ea_t) bool

Remove an address from a problem list

Parameters:
  • type – problem list type

  • ea – linear address

Returns:

success

ida_problems.get_problem_name(type: problist_id_t, longname: bool = True) str

Get problem list description.

ida_problems.is_problem_present(t: problist_id_t, ea: ida_idaapi.ea_t) bool

Check if the specified address is present in the problem list.

ida_problems.was_ida_decision(ea: ida_idaapi.ea_t) bool
ida_problems.cvar
ida_problems.PR_NOBASE

Can’t find offset base.

ida_problems.PR_NONAME

Can’t find name.

ida_problems.PR_NOFOP

Can’t find forced op (not used anymore)

ida_problems.PR_NOCMT

Can’t find comment (not used anymore)

ida_problems.PR_NOXREFS

Can’t find references.

ida_problems.PR_JUMP

Jump by table !!!! ignored.

ida_problems.PR_DISASM

Can’t disasm.

ida_problems.PR_HEAD

Already head.

ida_problems.PR_ILLADDR

Exec flows beyond limits.

ida_problems.PR_MANYLINES

Too many lines.

ida_problems.PR_BADSTACK

Failed to trace the value of the stack pointer.

ida_problems.PR_ATTN

Attention! Probably erroneous situation.

ida_problems.PR_FINAL

Decision to convert to instruction/data is made by IDA.

ida_problems.PR_ROLLED

The decision made by IDA was wrong and rolled back.

ida_problems.PR_COLLISION

FLAIR collision: the function with the given name already exists.

ida_problems.PR_DECIMP

FLAIR match indecision: the patterns matched, but not the function(s) being referenced.

ida_problems.PR_END

Number of problem types.