IDA C++ SDK 9.2
|
#include <ua.hpp>
Public Member Functions | |
bool | only_main_line () const |
bool | multiline () const |
bool | force_code () const |
bool | stack_view () const |
bool | display_voids () const |
bool | display_hidden () 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 |
virtual | ~outctx_base_t (void) |
AS_PRINTF (2, 3) size_t out_printf(const char *format | |
Append a formatted string to the output string. | |
va_start (va, format) | |
va_end (va) | |
GCC_DIAG_OFF (format-nonliteral) | |
size_t | nowarn_out_printf (const char *format,...) |
GCC_DIAG_ON (format-nonliteral) | |
virtual | AS_PRINTF (2, 0) size_t idaapi out_vprintf(const char *format |
virtual flags64_t idaapi | out_value (const op_t &x, int outf=0) |
Output immediate value. | |
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. | |
virtual void idaapi | out_char (char c) |
Output one character. | |
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. | |
virtual void idaapi | out_long (sval_t v, char radix) |
Output a number with appropriate color. | |
virtual bool idaapi | out_name_expr (const op_t &x, ea_t ea, adiff_t off=BADADDR) |
Output a name expression. | |
void | close_comment (void) |
virtual bool idaapi | flush_outbuf (int indent=-1) |
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 bool idaapi | flush_buf (const char *buf, int indent=-1) |
Append contents of 'buf' to the line array. | |
virtual int idaapi | term_outctx (const char *prefix=nullptr) |
Finalize the output context. | |
virtual | AS_PRINTF (3, 0) bool idaapi gen_vprintf(int indent |
See gen_printf() | |
AS_PRINTF (3, 4) inline bool gen_printf(int indent | |
printf-like function to add lines to the line array. | |
const char | va_start (va, format) |
va_end (va) | |
virtual bool idaapi | gen_empty_line (void) |
Generate empty line. | |
virtual bool idaapi | gen_border_line (bool solid=false) |
Generate thin border line. | |
virtual | AS_PRINTF (3, 0) bool idaapi gen_colored_cmt_line_v(color_t color |
See gen_cmt_line() | |
AS_PRINTF (2, 0) inline bool gen_cmt_line_v(const char *format | |
See gen_cmt_line() | |
AS_PRINTF (2, 3) inline bool gen_cmt_line(const char *format | |
Generate one non-indented comment line, colored with COLOR_AUTOCMT. | |
va_start (va, format) | |
va_end (va) | |
AS_PRINTF (2, 3) inline bool gen_collapsed_line(const char *format | |
Generate one non-indented comment line, colored with COLOR_COLLAPSED. | |
va_start (va, format) | |
va_end (va) | |
virtual bool idaapi | gen_block_cmt (const char *cmt, color_t color) |
Generate big non-indented comment lines. | |
virtual void idaapi | setup_outctx (const char *prefix, int makeline_flags) |
Initialization; normally used only by the kernel. | |
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 |
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 | |
size_t | len = out_vprintf(format, va) |
return | len |
virtual va_list | va |
virtual const char * | format |
virtual const char va_list | va |
const char * | format |
bool | code = gen_vprintf(indent, format, va) |
return | code |
va_list | va |
bool | answer = gen_colored_cmt_line_v(COLOR_COLLAPSED, format, va) |
return | answer |
Protected Member Functions | |
virtual bool idaapi | flush_and_reinit (void) |
virtual void idaapi | append_user_prefix (const char *, int) |
virtual void idaapi | add_aux_prefix (const char *, int) |
virtual void idaapi | out_label_addr_tag (void) |
virtual void idaapi | out_aux_cmts (void) |
|
virtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
delete |
outctx_base_t::AS_PRINTF | ( | 2 | , |
3 | ) const |
Append a formatted string to the output string.
Functions to append text to the current output buffer (outbuf)
outctx_base_t::va_end | ( | va | ) |
outctx_base_t::GCC_DIAG_OFF | ( | format- | nonliteral | ) |
|
inline |
outctx_base_t::GCC_DIAG_ON | ( | format- | nonliteral | ) |
|
virtual |
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 character with COLOR_SYMBOL color.
|
virtual |
Append a character multiple times.
Appends spaces to outbuf until its tag_strlen becomes 'len'.
Output a string with the specified color.
|
inline |
Output a string with COLOR_KEYWORD color.
|
inline |
Output a character with COLOR_REG color.
|
inline |
Output local variable name with COLOR_LOCNAME color.
Output "turn color on" escape sequence.
Output "turn color off" escape sequence.
Output "address" escape sequence.
|
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()
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.
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 |
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.
Functions to populate the output line array (lnar)
|
virtual |
Append contents of 'buf' to the line array.
Behaves like flush_outbuf but accepts an arbitrary buffer
|
virtual |
|
virtual |
See gen_printf()
outctx_base_t::AS_PRINTF | ( | 3 | , |
4 | ) |
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 |
outctx_base_t::va_end | ( | va | ) |
Generate empty line.
This function does nothing if generation of empty lines is disabled.
Generate thin border line.
This function does nothing if generation of border lines is disabled.
solid | generate solid border line (with =), otherwise with - |
|
virtual |
See gen_cmt_line()
outctx_base_t::AS_PRINTF | ( | 2 | , |
0 | ) const |
See gen_cmt_line()
outctx_base_t::AS_PRINTF | ( | 2 | , |
3 | ) const |
Generate one non-indented comment line, colored with COLOR_AUTOCMT.
format | printf() style format line. The resulting comment line should not include comment character (;) |
outctx_base_t::va_end | ( | va | ) |
outctx_base_t::AS_PRINTF | ( | 2 | , |
3 | ) const |
Generate one non-indented comment line, colored with COLOR_COLLAPSED.
format | printf() style format line. The resulting comment line should not include comment character (;) |
outctx_base_t::va_end | ( | va | ) |
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.
Reimplemented in outctx_t.
Reimplemented in outctx_t.
|
virtual |
|
inline |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
ea_helper_t& outctx_base_t::_eah |
ea_t outctx_base_t::insn_ea |
qstring outctx_base_t::outbuf |
buffer for the current output line once ready, it is moved to lnar
ssize_t outctx_base_t::regname_idx = -1 |
to rename registers
int outctx_base_t::suspop |
controls color for out_long()
flags_t outctx_base_t::F32 |
please use outctx_t::F instead
uval_t* outctx_base_t::outvalues = nullptr |
at least 2*UA_MAXOP elements
int outctx_base_t::outvalue_getn_flags = 0 |
additional flags for print_operand()
void* outctx_base_t::user_data = nullptr |
pointer to be used by the processor module for any purpose
void* outctx_base_t::kern_data = nullptr |
internal info used by the kernel
qstrvec_t* outctx_base_t::lnar = nullptr |
vector of output lines
int outctx_base_t::lnar_maxsize = 0 |
max permitted size of lnar
int outctx_base_t::default_lnnum = -1 |
index of the most important line in lnar
qstring outctx_base_t::line_prefix |
usually segname:offset
ssize_t outctx_base_t::prefix_len = 0 |
visible length of line_prefix
int outctx_base_t::ctxflags = 0 |
various bits
int outctx_base_t::ind0 = 0 |
ea_t outctx_base_t::cmt_ea = BADADDR |
indirectly referenced address (used to generate cmt)
qstring outctx_base_t::cmtbuf |
indented comment
const char* outctx_base_t::cmtptr = nullptr |
rest of indented comment
color_t outctx_base_t::cmtcolor = 0xFF |
comment color
return outctx_base_t::len |
const char va_list outctx_base_t::va |
const char * outctx_base_t::format |
virtual const char va_list outctx_base_t::va |
const char* outctx_base_t::format |
return outctx_base_t::code |
va_list outctx_base_t::va |
bool outctx_base_t::answer = gen_colored_cmt_line_v(COLOR_COLLAPSED, format, va) |
return outctx_base_t::answer |