Latest available version: IDA and decompilers v8.3.230608 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon

Inherits outctx_base_t.

Public Member Functions

 outctx_t (procmod_t *p, processor_t &ph, asm_t &ash, ea_t ea, flags64_t flags=0, int _suspop=0, const printop_t *_wif=nullptr)
 
virtual void idaapi setup_outctx (const char *prefix, int flags) override
 Initialization; normally used only by the kernel. More...
 
virtual ssize_t idaapi retrieve_cmt (void) override
 
virtual ssize_t idaapi retrieve_name (qstring *, color_t *) override
 
virtual bool idaapi gen_xref_lines (void) override
 
virtual void idaapi out_btoa (uval_t Word, char radix=0) override
 Output a number with the specified base (binary, octal, decimal, hex) The number is output without color codes. More...
 
void set_bin_state (int value)
 
virtual void idaapi out_mnem (int width=8, const char *postfix=nullptr) new api
 Output instruction mnemonic for 'insn' using information in 'ph.instruc' array. More...
 
virtual void idaapi out_custom_mnem (const char *mnem, int width=8, const char *postfix=nullptr) new api
 Output custom mnemonic for 'insn'. More...
 
virtual void idaapi out_mnemonic (void) new api
 Output instruction mnemonic using information in 'insn'. More...
 
virtual bool idaapi out_one_operand (int n) new api
 Use this function to output an operand of an instruction. More...
 
virtual size_t idaapi get_immvals (uval_t *out, int i) new api
 Get the immediate values used at the specified address. More...
 
virtual void idaapi out_immchar_cmts (void) new api
 Print all operand values as commented character constants. More...
 
virtual void idaapi gen_func_header (func_t *pfn) new api
 
virtual void idaapi gen_func_footer (const func_t *pfn) new api
 
virtual void idaapi out_data (bool analyze_only) new api
 
virtual bool idaapi out_specea (uchar segtype) new api
 
virtual void idaapi gen_header_extra () new api
 
virtual void idaapi gen_header (int flags=GH_PRINT_PROC_AND_ASM, const char *proc_name=nullptr, const char *proc_flavour=nullptr) new api
 
- Public Member Functions inherited from outctx_base_t
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)
 
void out_printf (const char *format,...)
 ------------------------------------------------------------------------- Functions to append text to the current output buffer (outbuf) More...
 
 GCC_DIAG_OFF (format-nonliteral)
 
void nowarn_out_printf (const char *format,...)
 
 GCC_DIAG_ON (format-nonliteral)
 
virtual void 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.
 
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 member_t *idaapi get_stkvar (const op_t &, uval_t, sval_t *, int *)
 
void gen_empty_line_without_annotations (void)
 

Public Attributes

ea_t bin_ea
 
char bin_state
 
int gl_bpsize = 0
 
int bin_width = 0
 
insn_t insn
 
qstring curlabel
 
const printop_twif
 
procmod_tprocmod
 
processor_tph
 
asm_tash
 
uval_t saved_immvals [UA_MAXOP] = { 0 }
 
ea_t prefix_ea = BADADDR
 
- Public Attributes inherited from outctx_base_t
ea_t insn_ea
 
qstring outbuf
 
ssize_t regname_idx
 
int suspop
 
flags_t F
 
uval_toutvalues
 
int outvalue_getn_flags
 
void * user_data
 
void * kern_data
 
qstrvec_tlnar
 
int lnar_maxsize
 
int default_lnnum
 
qstring line_prefix
 
ssize_t prefix_len
 
int ctxflags
 
int ind0
 
ea_t cmt_ea
 
qstring cmtbuf
 
const char * cmtptr
 
color_t cmtcolor
 

Additional Inherited Members

- Protected Member Functions inherited from outctx_base_t
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)
 

Member Function Documentation

◆ setup_outctx()

virtual void idaapi outctx_t::setup_outctx ( const char *  prefix,
int  makeline_flags 
)
overridevirtual

Initialization; normally used only by the kernel.

Reimplemented from outctx_base_t.

◆ retrieve_cmt()

virtual ssize_t idaapi outctx_t::retrieve_cmt ( void  )
overridevirtual

Reimplemented from outctx_base_t.

◆ retrieve_name()

virtual ssize_t idaapi outctx_t::retrieve_name ( qstring ,
color_t  
)
overridevirtual

Reimplemented from outctx_base_t.

◆ gen_xref_lines()

virtual bool idaapi outctx_t::gen_xref_lines ( void  )
overridevirtual

Reimplemented from outctx_base_t.

◆ out_btoa()

virtual void idaapi outctx_t::out_btoa ( uval_t  Word,
char  radix = 0 
)
overridevirtual

Output a number with the specified base (binary, octal, decimal, hex) The number is output without color codes.

see also out_long()

Reimplemented from outctx_base_t.

◆ out_mnem()

virtual void idaapi outctx_t::out_mnem ( int  width = 8,
const char *  postfix = nullptr 
)
newvirtual

Output instruction mnemonic for 'insn' using information in 'ph.instruc' array.

This function outputs a colored text. It should be called from processor_t::ev_out_insn() or processor_t::ev_out_mnem() handler. It will output at least one space after the instruction. mnemonic even if the specified 'width' is not enough.

Parameters
widthwidth of field with mnemonic. if < 0, then 'postfix' will be output before the mnemonic, i.e. as a prefix
postfixoptional postfix added to the instruction mnemonic

◆ out_custom_mnem()

virtual void idaapi outctx_t::out_custom_mnem ( const char *  mnem,
int  width = 8,
const char *  postfix = nullptr 
)
newvirtual

Output custom mnemonic for 'insn'.

E.g. if it should differ from the one in 'ph.instruc'. This function outputs colored text. See out_mnem

Parameters
mnemcustom mnemonic
widthwidth of field with mnemonic. if < 0, then 'postfix' will be output before the mnemonic, i.e. as a prefix
postfixoptional postfix added to 'mnem'

◆ out_mnemonic()

virtual void idaapi outctx_t::out_mnemonic ( void  )
newvirtual

Output instruction mnemonic using information in 'insn'.

It should be called from processor_t::ev_out_insn() and it will call processor_t::ev_out_mnem() or out_mnem. This function outputs a colored text.

◆ out_one_operand()

virtual bool idaapi outctx_t::out_one_operand ( int  n)
newvirtual

Use this function to output an operand of an instruction.

This function checks for the existence of a manually defined operand and will output it if it exists. It should be called from processor_t::ev_out_insn() and it will call processor_t::ev_out_operand(). This function outputs a colored text.

Parameters
nnumber of operand
Return values
1operand is displayed
0operand is hidden

◆ get_immvals()

virtual size_t idaapi outctx_t::get_immvals ( uval_t out,
int  i 
)
newvirtual

Get the immediate values used at the specified address.

This function can handle instructions and data items.

Parameters
outarray of values, size at least 2*UA_MAXOP
ioperand number
Returns
number of immediate values

◆ out_immchar_cmts()

virtual void idaapi outctx_t::out_immchar_cmts ( void  )
newvirtual

Print all operand values as commented character constants.

This function is used to comment void operands with their representation in the form of character constants. This function outputs a colored text.


The documentation for this struct was generated from the following file: