logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

x86_init, x86_cleanup - initialize and cleanup libdisasm

Description

enumx86_options{
            opt_none= 0,
            opt_ignore_nulls=1, /* ignore sequences of > 4 NULL bytes */
            opt_16_bit=2,       /* 16-bit/DOS disassembly */
            opt_unknown
       };enumx86_report_codes{
               report_disasm_bounds,
               report_insn_bounds,
               report_invalid_insn,
               report_unknown
       };

Examples

       The following provides a skeleton for initializing and terminating
       libdisasm:

       void reporter( enum x86_report_codes code, void *data, void *arg ) {
               char * str = NULL;
               FILE *stream = (FILE *) arg;
               if (! stream ) stream = stderr;

               /* here would could examine the error and do something useful;
                * instead we just print that an error occurred */
               switch ( code ) {
                       case report_disasm_bounds:
                               str = "Attempt to disassemble RVA "
                                     "beyond end of buffer";
                               break;
                       case report_insn_bounds:
                               str = "Instruction at RVA extends "
                                     "beyond buffer";
                               break;
                       case report_invalid_insn:
                               str = "Invalid opcode at RVA";
                               break;
                       case report_unknown:
                               str = "Unknown Error";
                               break;
               }

               fprintf(stream, "ERROR ´%s:´ %p0, str, data);
       }

       int main( int argc, char **argv ) {
               x86_init(opt_none, reporter, stderr);

               /* disassembler code goes here */

               x86_cleanup();
       }

Name

       x86_init, x86_cleanup - initialize and cleanup libdisasm

See Also

libdisasm(7), x86_disasm(3), x86_format_insn(3), x86dis(1)

mammon_                                               0.21                                           x86_init(3)

Synopsis

#include<libdis.h>typedefvoid(*DISASM_REPORTER)(enumx86_report_codes code,void* data,void* arg );intx86_init(enumx86_options options,DISASM_REPORTER reporter,void* arg);intx86_cleanup(void);

See Also