-
Notifications
You must be signed in to change notification settings - Fork 298
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility with ud_opcode.py and Python 3.5 #120
Comments
This is also preventing mishegos, which fuzzes this project, from upgrading its environment: trailofbits/mishegos#1606 (comment) |
A second pull request that fixes this, in what's imo a less elegant way, is at 9c11d83. A third pull request that fixes this is in #139. That, imo, is the most elegant of the three, getting rid of the unnecessarily floating point numbers at the root of the issue. I confirm it's correct and complete. |
…mt#144 (vmt#144) scripts/ud_opcode.py: Working on vmt#120, because I hadn't realized that someone had already got properly to the root of it, in vmt#139, I was hampered by the output, specifically itab.h, changing order every time I ran: UD_OPCODE_DEBUG=1 python3 ../scripts/ud_itab.py ../docs/x86/optable.xml . ... from the libudis86/ directory. The getLabels change here fixes that to be in a defined ordering. The mergeSSENONE change fixes the ordering differences I see in itab.c between running the above command and similar with python2, by iterating over each table in the same style as used by genOpcodeTable in class UdItabGenerator in scripts/ud_itab.py.
There is a TypeError Raised by the following code in
ud_opcode.py
when run in Python 3.5:TypeError: %x format: an integer is required, not float
Purposed fix: Typecast the float
k
to an integer. (self.log("%s |-<%02x> %s" % (indent, int(k), e))
)Would this cause problems? The built in function
k.hex()
could be used but this produces a string, which would then not be format-able.The text was updated successfully, but these errors were encountered: