Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1244)

Side by Side Diff: src/third_party/libdisasm/swig/README

Issue 1821293002: Replace libdisasm with capstone Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 Libdisasm SWIG README
2
3 The SWIG utility (www.swig.org) can be used to generate
4
5
6 Building SWIG Modules
7 ---------------------
8
9 make
10 make install
11
12 Make and Install both build Python, Perl, Ruby, and Tcl modules. If you
13 do not have one of these languages installed, comment out the relevant
14 target in the main Makefile.
15
16 Install uses 'sudo' to put files in the correct locations; if you
17 do not have sudo installed, change the install targets.
18
19 The Module API
20 --------------
21
22 The OOP API
23 -----------
24
25
26 The Python Module
27 -----------------
28
29 To test that the module loads:
30
31 bash# python
32 >>> import x86disasm
33 >>> x86disasm.version_string()
34 '0.21-pre'
35 >>>^D
36 bash#
37
38 >>> import x86disasm
39 >>> import array
40 >>> disasm = x86disasm.X86_Disasm( )
41 >>> tgt = open( "/tmp/a.out", "rb" )
42 >>> tgt.seek( 0, 2 )
43 >>> size = tgt.tell()
44 >>> tgt.seek( 0, 0 )
45 >>> buf = array.array( 'B' )
46 >>> buf.fromfile( tgt, size )
47 >>> tgt.close()
48 >>> data = x86disasm.byteArray( size )
49 >>> for i in range( size ):
50 ... data[i] = buf.pop(0)
51 ...
52 >>> del buf
53 >>> del tgt
54 >>> insn = disasm.disasm( data, size - 1, 0, 0 )
55 >>> insn.format( x86disasm.att_syntax )
56 'jg\t0x00000047'
57 >>> insn.format( x86disasm.raw_syntax )
58 '0x00000000|0x00000000|2|7F 45 |||controlflow|jcc|jg|80386|General Purpo se|||zero_clear sign_eq_oflow |0|0|relative|sbyte|00000047|'
59 >>> ops = insn.operand_list()
60 >>> node = ops.first()
61 >>> while node is not None:
62 ... s = node.op.format(x86disasm.raw_syntax)
63 ... print s
64 ... node = ops.next()
65 ...
66 relative|sbyte|00000047|
67
68
69
70
71
72
73 The Perl Module
74 ---------------
75
76 To test that the module loads:
77
78 bash# perl
79 use x86disasm;
80 print x86disasm::version_string() . "\n";
81 ^D
82 0.21-pre
83 bash#
84
85 The Ruby Module
86 ---------------
87
88 To test that the module loads:
89
90 bash# irb
91 irb(main):001:0> require 'x86disasm'
92 => true
93 irb(main):002:0> X86disasm.version_string()
94 => "0.21-pre"
95 irb(main):003:0> x = X86disasm::X86_Disasm.new
96 => #<X86disasm::X86_Disasm:0xb7d624a4>
97 irb(main):004:0> x.max_register_string()
98 => 8
99 irb(main):003:0> ^D
100 bash#
101
102 The Tcl Module
103 ---------------
104
105 To test that the module loads:
106
107 bash# tclsh
108 % load /usr/lib/tcl8.3/x86disasm.so X86disasm
109 % version_string
110 0.21-pre
111 % ^D
112 bash#
113
114 % x86_init 0 NULL NULL
115 OR
116 % x86disasm dis
117 _486b0708_p_x86disasm
118 % puts "[dis cget -last_error]"
119 0
120
121
122
123
124 The Interface Files
125 -------------------
126
127 libdisasm.i -- interface file without shadow classes
128 libdisasm_oop.i -- interface file with shadow classes
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698