IDA C++ SDK 9.2
|
Describes a subdivision of source information. More...
#include <dbg.hpp>
Public Member Functions | |
virtual void idaapi | release () override=0 |
Call this function to free source_item_t. | |
virtual source_file_iterator idaapi | get_source_files ()=0 |
Get source files of the item. | |
virtual bool idaapi | get_name (qstring *buf) const =0 |
Get name of the item. | |
virtual int idaapi | get_lnnum () const =0 |
Get line number of the item (1-based) | |
virtual int idaapi | get_end_lnnum () const =0 |
Get ending line number (1-based.) The returned line number is the next line after the expression. | |
virtual int idaapi | get_colnum () const =0 |
Get column number of the item. | |
virtual int idaapi | get_end_colnum () const =0 |
Get ending column number. | |
virtual ea_t idaapi | get_ea () const =0 |
Get starting address of the item. | |
virtual asize_t idaapi | get_size () const =0 |
Get size of the item in bytes. | |
virtual bool idaapi | get_item_bounds (rangeset_t *set) const =0 |
Get item boundaries as a set of ranges. | |
virtual source_item_ptr idaapi | get_parent (src_item_kind_t max_kind) const =0 |
Get parent of the item. | |
virtual source_item_iterator idaapi | create_children_iterator ()=0 |
Create an iterator to enumerate all children of the item. | |
virtual bool idaapi | get_hint (qstring *hint, const eval_ctx_t *ctx, int *nlines) const =0 |
Calculate a string to display as a hint. | |
virtual bool idaapi | evaluate (const eval_ctx_t *ctx, idc_value_t *res, qstring *errbuf) const =0 |
Evaluate item value (meaningful only for expression items). | |
virtual bool idaapi | equals (const source_item_t *other) const =0 |
Do these two items have the same source? | |
Getters (for modification) | |
The following functions can be used to extract the item information in order to modify it. For example, if the user wants to modify a variable we will find what exactly needs to be modified. | |
virtual src_item_kind_t idaapi | get_item_kind (const eval_ctx_t *) const newapi |
Get item kind. | |
bool | is_stmt (const eval_ctx_t *ctx) const |
Does this source item represent a statement? | |
bool | is_module (const eval_ctx_t *ctx) const |
Does this source item represent a module? | |
bool | is_func (const eval_ctx_t *ctx) const |
Does this source item represent a function? | |
bool | is_expr (const eval_ctx_t *ctx) const |
Does this source item represent an expression? | |
bool | is_locvar (const eval_ctx_t *ctx) const |
Does this source item represent a stack, register, or register-relative local variable or parameter? | |
bool | is_sttvar (const eval_ctx_t *ctx) const |
Does this source item represent a static variable or code? | |
virtual srcinfo_provider_t *idaapi | get_provider (void) const =0 |
Get source info provider. | |
virtual bool idaapi | get_location (argloc_t *, const eval_ctx_t *) const newapi |
Get the location for this source item. | |
virtual bool idaapi | get_expr_tinfo (tinfo_t *tif) const =0 |
Get expression type. | |
Public Member Functions inherited from qrefcnt_obj_t | |
qrefcnt_obj_t (void) | |
Constructor. |
Additional Inherited Members | |
Public Attributes inherited from qrefcnt_obj_t | |
int | refcnt |
counter |
Describes a subdivision of source information.
|
overridepure virtual |
Call this function to free source_item_t.
Implements qrefcnt_obj_t.
|
pure virtual |
Get source files of the item.
Get name of the item.
|
pure virtual |
Get line number of the item (1-based)
|
pure virtual |
Get ending line number (1-based.) The returned line number is the next line after the expression.
|
pure virtual |
Get column number of the item.
If unknown, return -1
|
pure virtual |
Get ending column number.
The returned column number is the next column after the expression. If unknown, return -1
|
pure virtual |
Get starting address of the item.
|
pure virtual |
Get size of the item in bytes.
If the item is fragmented, return size of the main fragment. if unknown, return 0. On error, return (asize_t) -1.
|
pure virtual |
Get item boundaries as a set of ranges.
This function will be used to determine what breakpoints to set for stepping into/stepping over the item.
|
pure virtual |
Get parent of the item.
max_kind | maximal source item kind we are interested in. for example, if max_kinds==SRCIT_STMT, we are not interested in expressions, only in the enclosing statement or function |
|
pure virtual |
Create an iterator to enumerate all children of the item.
|
pure virtual |
Calculate a string to display as a hint.
hint | output buffer for the hint (may by multiline & with colors) |
ctx | execution context. nullptr means missing context. |
nlines | number of important lines in the hint |
|
pure virtual |
Evaluate item value (meaningful only for expression items).
ctx | execution context. nullptr means missing context. |
res | buffer for the result (or exception if evaluation failed) |
errbuf | buffer for the error message |
|
pure virtual |
Do these two items have the same source?
false | the source of the underlying data differs between the two items. |
true | when either the source of the underlying data is the same for the two items, or when such information is not available. |
E.g., A DWARF implementation of source_item_t will return true if the two items are backed by DIEs that have the same file offset.
|
inlinevirtual |
Get item kind.
|
inline |
Does this source item represent a statement?
|
inline |
Does this source item represent a module?
|
inline |
Does this source item represent a function?
|
inline |
Does this source item represent an expression?
|
inline |
Does this source item represent a stack, register, or register-relative local variable or parameter?
|
inline |
Does this source item represent a static variable or code?
|
pure virtual |
Get source info provider.
The instance shouldn't be freed or released after using
|
inlinevirtual |
Get the location for this source item.
Get expression type.