IDA SDK
|
Inherited by outctx_t.
Public Attributes | |
ea_helper_t & | _eah |
ea_t | insn_ea |
qstring | outbuf |
buffer for the current output line once ready, it is moved to lnar | |
ssize_t | regname_idx = -1 |
to rename registers | |
int | suspop |
controls color for out_long() | |
flags_t | F32 |
please use outctx_t::F instead | |
uval_t * | outvalues = nullptr |
at least 2*UA_MAXOP elements | |
int | outvalue_getn_flags = 0 |
additional flags for print_operand() | |
void * | user_data = nullptr |
pointer to be used by the processor module for any purpose | |
void * | kern_data = nullptr |
internal info used by the kernel | |
qstrvec_t * | lnar = nullptr |
vector of output lines | |
int | lnar_maxsize = 0 |
max permitted size of lnar | |
int | default_lnnum = -1 |
index of the most important line in lnar | |
qstring | line_prefix |
usually segname:offset | |
ssize_t | prefix_len = 0 |
visible length of line_prefix | |
int | ctxflags = 0 |
various bits | |
int | ind0 = 0 |
ea_t | cmt_ea = BADADDR |
indirectly referenced address (used to generate cmt) | |
qstring | cmtbuf |
indented comment | |
const char * | cmtptr = nullptr |
rest of indented comment | |
color_t | cmtcolor = 0xFF |
comment color | |
Public Member Functions | |
bool | only_main_line () const |
bool | multiline () const |
bool | force_code () const |
bool | stack_view () const |
bool | display_voids () const |
void | set_gen_xrefs (bool on=true) |
int | get_xrefgen_state () const |
void | set_gen_cmt (bool on=true) |
int | get_cmtgen_state () const |
int | get_binop_state () const |
void | clr_gen_label (void) |
void | set_gen_label (void) |
void | set_gen_demangled_label (void) |
void | set_comment_addr (ea_t ea) |
void | set_dlbind_opnd (void) |
bool | print_label_now () const |
int | forbid_annotations () |
void | restore_ctxflags (int saved_flags) |
outctx_base_t (ea_t ea, flags64_t flags, int _suspop=0) | |
outctx_base_t & | operator= (const outctx_base_t &)=delete |
size_t | out_printf (const char *format,...) |
------------------------------------------------------------------------- Functions to append text to the current output buffer (outbuf) More... | |
GCC_DIAG_OFF (format-nonliteral) | |
size_t | nowarn_out_printf (const char *format,...) |
GCC_DIAG_ON (format-nonliteral) | |
virtual size_t idaapi | out_vprintf (const char *format, va_list va) |
virtual flags64_t idaapi | out_value (const op_t &x, int outf=0) |
Output immediate value. More... | |
virtual void idaapi | out_symbol (char c) |
Output a character with COLOR_SYMBOL color. | |
virtual void idaapi | out_chars (char c, int n) |
Append a character multiple times. | |
void | out_spaces (ssize_t len) |
Appends spaces to outbuf until its tag_strlen becomes 'len'. | |
virtual void idaapi | add_spaces (qstring *buf, ssize_t len) |
virtual void idaapi | out_line (const char *str, color_t color=0) |
Output a string with the specified color. | |
void | out_keyword (const char *str) |
Output a string with COLOR_KEYWORD color. | |
void | out_register (const char *str) |
Output a character with COLOR_REG color. | |
void | out_lvar (const char *name, int width=-1) |
Output local variable name with COLOR_LOCNAME color. | |
virtual void idaapi | out_tagon (color_t tag) |
Output "turn color on" escape sequence. | |
virtual void idaapi | out_tagoff (color_t tag) |
Output "turn color off" escape sequence. | |
virtual void idaapi | out_addr_tag (ea_t ea) |
Output "address" escape sequence. | |
virtual void idaapi | out_colored_register_line (const char *str) |
Output a colored line with register names in it. More... | |
virtual void idaapi | out_char (char c) |
Output one character. More... | |
virtual void idaapi | out_btoa (uval_t Word, char radix=0) |
Output a number with the specified base (binary, octal, decimal, hex) The number is output without color codes. More... | |
virtual void idaapi | out_long (sval_t v, char radix) |
Output a number with appropriate color. More... | |
virtual bool idaapi | out_name_expr (const op_t &x, ea_t ea, adiff_t off=BADADDR) |
Output a name expression. More... | |
void | close_comment (void) |
virtual bool idaapi | flush_outbuf (int indent=-1) |
------------------------------------------------------------------------- Functions to populate the output line array (lnar) More... | |
virtual bool idaapi | flush_buf (const char *buf, int indent=-1) |
Append contents of 'buf' to the line array. More... | |
virtual int idaapi | term_outctx (const char *prefix=nullptr) |
Finalize the output context. More... | |
virtual bool idaapi | gen_vprintf (int indent, const char *format, va_list va) |
See gen_printf() | |
bool | gen_printf (int indent, const char *format,...) |
printf-like function to add lines to the line array. More... | |
virtual bool idaapi | gen_empty_line (void) |
Generate empty line. More... | |
virtual bool idaapi | gen_border_line (bool solid=false) |
Generate thin border line. More... | |
virtual bool idaapi | gen_colored_cmt_line_v (color_t color, const char *format, va_list va) |
See gen_cmt_line() | |
bool | gen_cmt_line_v (const char *format, va_list va) |
See gen_cmt_line() | |
bool | gen_cmt_line (const char *format,...) |
Generate one non-indented comment line, colored with COLOR_AUTOCMT. More... | |
bool | gen_collapsed_line (const char *format,...) |
Generate one non-indented comment line, colored with COLOR_COLLAPSED. More... | |
virtual bool idaapi | gen_block_cmt (const char *cmt, color_t color) |
Generate big non-indented comment lines. More... | |
virtual void idaapi | setup_outctx (const char *prefix, int makeline_flags) |
Initialization; normally used only by the kernel. More... | |
virtual ssize_t idaapi | retrieve_cmt (void) |
virtual ssize_t idaapi | retrieve_name (qstring *, color_t *) |
virtual bool idaapi | gen_xref_lines (void) |
virtual void idaapi | init_lines_array (qstrvec_t *answers, int maxsize) |
virtual ssize_t idaapi | get_stkvar (const op_t &x, uval_t v, sval_t *vv, int *is_sp_based, tinfo_t *_frame) |
void | gen_empty_line_without_annotations (void) |
flags64_t | getF () const |
|
inline |
------------------------------------------------------------------------- Functions to append text to the current output buffer (outbuf)
Append a formatted string to the output string.
Output immediate value.
Try to use this function to output all constants of instruction operands. This function outputs a number from x.addr or x.value in the form determined by F. It outputs colored text.
x | value to output |
outf | Output value flags |
-1 | if printed a number with COLOR_ERROR |
0 | if printed a nice number or character or segment or enum |
|
virtual |
Output a colored line with register names in it.
The register names will be substituted by user-defined names (regvar_t) Please note that out_tagoff tries to make substitutions too (when called with COLOR_REG)
|
inlinevirtual |
Output one character.
The character is output without color codes. see also out_symbol()
|
virtual |
Output a number with the specified base (binary, octal, decimal, hex) The number is output without color codes.
see also out_long()
Reimplemented in outctx_t.
|
virtual |
Output a number with appropriate color.
Low level function. Use out_value() if you can. if 'suspop' is set then this function uses COLOR_VOIDOP instead of COLOR_NUMBER. 'suspop' is initialized:
v | value to output |
radix | base (2,8,10,16) |
suspop | ::suspop
|
|
virtual |
Output a name expression.
x | instruction operand referencing the name expression |
ea | address to convert to name expression |
off | the value of name expression. this parameter is used only to check that the name expression will have the wanted value. You may pass BADADDR for this parameter but I discourage it because it prohibits checks. |
|
virtual |
------------------------------------------------------------------------- Functions to populate the output line array (lnar)
Move the contents of the output buffer to the line array (outbuf->lnar) The kernel augments the outbuf contents with additional text like the line prefix, user-defined comments, xrefs, etc at this call.
|
virtual |
Append contents of 'buf' to the line array.
Behaves like flush_outbuf but accepts an arbitrary buffer
|
virtual |
|
inline |
printf-like function to add lines to the line array.
indent | indention of the line. if indent == -1, the kernel will indent the line at idainfo::indent. if indent < 0, -indent will be used for indention. The first line printed with indent < 0 is considered as the most important line at the current address. Usually it is the line with the instruction itself. This line will be displayed in the cross-reference lists and other places. If you need to output an additional line before the main line then pass DEFAULT_INDENT instead of -1. The kernel will know that your line is not the most important one. |
format | printf style colored line to generate |
|
virtual |
Generate empty line.
This function does nothing if generation of empty lines is disabled.
|
virtual |
Generate thin border line.
This function does nothing if generation of border lines is disabled.
solid | generate solid border line (with =), otherwise with - |
|
inline |
Generate one non-indented comment line, colored with COLOR_AUTOCMT.
format | printf() style format line. The resulting comment line should not include comment character (;) |
|
inline |
Generate one non-indented comment line, colored with COLOR_COLLAPSED.
format | printf() style format line. The resulting comment line should not include comment character (;) |
|
virtual |
Generate big non-indented comment lines.
cmt | comment text. may contain \n characters to denote new lines. should not contain comment character (;) |
color | color of comment text (one of Color tags) |
|
virtual |
Initialization; normally used only by the kernel.
Reimplemented in outctx_t.