IDA SDK

- Main Page
- Header Files
- Classes
- Modules

- File List
- File Members

Functions | Typedefs | Variables
queue.hpp File Reference

## Detailed Description

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.

See Problem lists for the different types of problem lists.

## Functions
idaman ea_t ida_export | QueueGet (qtype_t *type)
| Get an address from any problem list. More...
idaman ssize_t ida_export | QueueGetMessage (qtype_t t, ea_t ea, char *buf, size_t bufsize)
| Get the human-friendly description of the problem, if one was provided to QueueSet. More...
idaman void ida_export | QueueSet (qtype_t type, ea_t ea, const char *msg=NULL)
| Insert an address to a list of problems. More...
idaman ea_t ida_export | QueueGetType (qtype_t type, ea_t lowea)
| Get an address from the specified problem list. More...
idaman void ida_export | QueueDel (qtype_t type, ea_t ea)
| Remove an address from a problem list. More...
void | QueueDel (ea_t ea)
| Remove an address from all problem lists. More...
idaman bool ida_export | QueueIsPresent (qtype_t t, ea_t ea)
| Check if the specified address is present in the queue.
Get queue problem description string
idaman const char *ida_export | get_long_queue_name (qtype_t type)
idaman const char *ida_export | get_short_queue_name (qtype_t type)

## Typedefs
typedef uchar | qtype_t
| see Problem lists

## Variables
const qtype_t | Q_noBase = 1
| Can't find offset base.
const qtype_t | Q_noName = 2
| Can't find name.
const qtype_t | Q_noFop = 3
| Can't find forced op.
const qtype_t | Q_noComm = 4
| Can't find comment !!!! not used anymore !!!
const qtype_t | Q_noRef = 5
| Can't find references.
const qtype_t | Q_jumps = 6
| Jump by table !!!! ignored.
const qtype_t | Q_disasm = 7
| Can't disasm.
const qtype_t | Q_head = 8
| Already head.
const qtype_t | Q_noValid = 9
| Exec flows beyond limits.
const qtype_t | Q_lines = 10
| Too many lines.
const qtype_t | Q_badstack = 11
| Failed to trace the value of the stack pointer.
const qtype_t | Q_att = 12
| Attention! Probably erroneous situation.
const qtype_t | Q_final = 13
| Decision to convert to instruction/data is made by IDA.
const qtype_t | Q_rolled = 14
| The decision made by IDA was wrong and rolled back.
const qtype_t | Q_collsn = 15
| FLAIR collision: the function with the given name already exists.
const qtype_t | Q_decimp = 16
| FLAIR match indecision: the patterns matched, but not the function(s) being referenced.
const qtype_t | Q_Qnum = Q_decimp + 1
| Number of qtypes.

## Function Documentation

idaman ea_t ida_export QueueGet | ( | qtype_t * | type | ) |

Get an address from any problem list.

The address is not removed from the list. The kernel returns an address from a list with the smallest type value.

Parameters

  type | problem queue type the address is got from

Returns
  linear address or BADADDR

idaman ssize_t ida_export QueueGetMessage | ( | qtype_t | t,
|  | ea_t | ea,
|  | char * | buf,
|  | size_t | bufsize
| ) |  |

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

Parameters

  t | problem queue type.
  ea | linear address.
  buf | a buffer to store the message into.
  bufsize | the size of the buffer.

Returns
  the message length or -1 if none

idaman void ida_export QueueSet | ( | qtype_t | type,
|  | ea_t | ea,
|  | const char * | msg = `NULL`
| ) |  |

Insert an address to a list of problems.

Display a message saying about the problem (except of Q_att,Q_final) Q_jumps is temporarily ignored.

Parameters

  ea | linear address
  type | problem queue type
  msg | a user-friendly message to be displayed instead of the default more generic one associated with the type of problem. Defaults to NULL.

idaman ea_t ida_export QueueGetType | ( | qtype_t | type,
|  | ea_t | lowea
| ) |  |

Get an address from the specified problem list.

The address is not removed from the list.

Parameters

  type | problem queue type
  lowea | the returned address will be higher or equal than the specified address

Returns
  linear address or BADADDR

idaman void ida_export QueueDel | ( | qtype_t | type,
|  | ea_t | ea
| ) |  |

Remove an address from a problem list.

Parameters

  ea | linear address
  type | problem queue type

void QueueDel | ( | ea_t | ea | ) |

Remove an address from all problem lists.

Parameters

  ea | linear address