IDA SDK
Classes | Macros | Typedefs | Enumerations | Functions
Source information providers

Detailed Description

These providers supply information about the source files and lines to the source level debugger.

Note
objects that inherit from qrefcnt_obj_t must be freed using the release() method. do not use the 'delete' operator! See description for qrefcnt_obj_t::release()

Currently this interface is not frozen and may change. We will freeze it once we settle things down.

Classes

class  eval_ctx_t
 Execution context. More...
 
class  source_file_t
 Describes a source file. More...
 
class  source_item_t
 Describes a subdivision of source information. More...
 
class  srcinfo_provider_t
 Describes the mechanism used to retrieve source file information. More...
 

Macros

#define ENABLE_SRCDBG
 
#define SRCDBG_PROV_VERSION   4
 

Typedefs

typedef qrefcnt_t< source_item_tsource_item_ptr
 Maintain a reference count for source items.
 
typedef qiterator< source_item_ptr_source_item_iterator
 Iterator for source items.
 
typedef qrefcnt_t< _source_item_iteratorsource_item_iterator
 Maintain a reference count for source item iterators.
 
typedef qrefcnt_t< source_file_tsource_file_ptr
 Maintain a reference count for source file objects.
 
typedef qiterator< source_file_ptr_source_file_iterator
 Iterator for source files.
 
typedef qrefcnt_t< _source_file_iteratorsource_file_iterator
 Maintain a reference count for source file iterators.
 

Enumerations

enum  src_item_kind_t {
  SRCIT_NONE, SRCIT_MODULE, SRCIT_FUNC, SRCIT_STMT,
  SRCIT_EXPR, SRCIT_STTVAR, SRCIT_LOCVAR
}
 Kinds of source items. More...
 

Functions

bool idaapi register_srcinfo_provider (srcinfo_provider_t *sp)
 Register a source information provider. More...
 
bool idaapi unregister_srcinfo_provider (srcinfo_provider_t *sp)
 Unregister a source information provider. More...
 
source_view_t * create_source_viewer (TWidget **out_ccv, TWidget *parent, TWidget *custview, source_file_ptr sf, strvec_t *lines, int lnnum, int colnum, int flags)
 Create a source code view.
 
idaman bool ida_export get_dbg_byte (uint32 *x, ea_t ea)
 Get one byte of the debugged process memory. More...
 
idaman bool ida_export put_dbg_byte (ea_t ea, uint32 x)
 Change one byte of the debugged process memory. More...
 

Enumeration Type Documentation

Kinds of source items.

Source items are organized into trees. Each tree starts with a MODULE. Each MODULE consists of FUNC and STTVAR global items. Each FUNC consists of STMTs (statements). Each STMT contains some EXPRs (expressions).

Enumerator
SRCIT_NONE 

unknown

SRCIT_MODULE 

module

SRCIT_FUNC 

function

SRCIT_STMT 

a statement (if/while/for...)

SRCIT_EXPR 

an expression (a+b*c)

SRCIT_STTVAR 

static variable/code

SRCIT_LOCVAR 

a stack, register, or register-relative local variable or parameter

Function Documentation

bool idaapi register_srcinfo_provider ( srcinfo_provider_t sp)
inline

Register a source information provider.

Source information providers will call this function to register themselves with IDA kernel. Returns false: a service provider with this name already exists.

bool idaapi unregister_srcinfo_provider ( srcinfo_provider_t sp)
inline

Unregister a source information provider.

Returns false: no such provider.

idaman bool ida_export get_dbg_byte ( uint32 x,
ea_t  ea 
)

Get one byte of the debugged process memory.

Parameters
xpointer to byte value
ealinear address
Returns
true success
false address inaccessible or debugger not running
idaman bool ida_export put_dbg_byte ( ea_t  ea,
uint32  x 
)

Change one byte of the debugged process memory.

Parameters
ealinear address
xbyte value
Returns
true if the process memory has been modified